package net.cloudsun.graph.core;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

/**
 * 有向无环图连接表
 * created at 12/11/2021
 *
 * @author 俞建波
 * <a href="mailto://yujianbo@chtwm.com">yujianbo@chtwm.com</a>
 * @since 1.1.0
 */
public class DagJoinTable extends HashMap<Integer, List<Integer>> {

    public void add(Integer key, Integer value) {
        List<Integer> integers = this.computeIfAbsent(key, k -> new ArrayList<>());
        // 这里需要避免重复添加
        if (!integers.contains(value)) {
            integers.add(value);
        }
    }

    public void remove(Integer key, Integer value) {
        final List<Integer> integers = get(key);
        if (integers != null && !integers.isEmpty()) {
            while (integers.remove(value)) {
                // 循环删除
            }
        }
    }
}
